Mirroring is a technique used to replicate a primary storage volume to a separate secondary storage volume, in order to ensure redundancy. For a storage facility comprising primary and secondary storage volumes, mirroring can be implemented either synchronously or asynchronously. During synchronous mirroring, a host (e.g., a database server) communicating with the storage facility receives a write acknowledgement after data is successfully written to both the primary and the secondary storage volumes. Synchronous mirroring is typically implemented over a storage area network (SAN).
During asynchronous mirroring, the host receives the write acknowledgement after the data is written to the primary volume (i.e., the secondary volume may have not yet received the data and/or may not have acknowledged writing the data). Asynchronous mirroring is typically implemented over lower speed wide area networks, especially over greater distances.